Trigger Tableau TDVT in connectors on snapshot publish and release (CON-264)#2875
Trigger Tableau TDVT in connectors on snapshot publish and release (CON-264)#2875ShimonSte wants to merge 2 commits into
Conversation
|
Repository collaborators can run the JMH benchmark suite against this PR by commenting: Optional regression threshold override (Δ% on Time or Alloc/op; defaults to 10%): Only one benchmark run per PR is active at a time — issuing a new |
Client V2 CoverageCoverage Report
Class Coverage
|
JDBC V2 CoverageCoverage Report
Class Coverage
|
JDBC V1 CoverageCoverage Report
Class Coverage
|
Client V1 CoverageCoverage Report
Class Coverage
|
|
Thank you for the PR! |
| clickhouse-r2dbc/target/clickhouse*.jar | ||
| client-v2/target/client-v2*.jar | ||
| jdbc-v2/target/jdbc-v2*.jar | ||
| # Tableau users install the latest JDBC driver manually, so a release |
There was a problem hiding this comment.
Release workflow does only push to staging and library may not be accessible for some time after that.
I think, we need somehow grab latest from maven central and test every week.
Idea is:
- if something broken - we should catch it on nightly
- if we doing a release and it is a release candidate - then latest should catch but actually we may trigger tests earlier.
There was a problem hiding this comment.
Going back to this (the last thing that needs to be done :-) )
You don't think we should check the release before pushing to staging? can we reuse the jar built locally on the workflow machine before being pushed?
Tableau users install the latest ClickHouse JDBC driver manually, so a snapshot or release regression reaches them with no connector release in between. After a snapshot/release publishes, fire a repository_dispatch to ClickHouse/connectors so its Tableau TDVT suite runs against the new driver. Tracking: CON-264. - nightly.yml: dispatch event_type=jdbc-snapshot; version derived from the pom <revision> property (env.CHC_VERSION is commented out). - release.yml: dispatch event_type=jdbc-release with the release version input. - Both are continue-on-error so a dispatch failure never fails the publish, and require secrets.CONNECTORS_DISPATCH_TOKEN (Contents:read/write on connectors).
|
Run TDVT in a separate job against clickhouse-tableau-tdvt, wait for the run to finish, and surface its outcome in the publishing workflow. Add mirror_tdvt.py for dispatch and run matching, and capture the nightly JDBC version before Maven flatten removes <revision>.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d092c0e. Configure here.
| if len(matches) == 1: | ||
| new_runs = [run for run in runs if run.get("id", 0) > threshold] | ||
| if len(new_runs) > 1: | ||
| return matches[0]["id"] |
There was a problem hiding this comment.
Picks unrelated TDVT workflow run
High Severity
The find_run_id function might incorrectly identify the target workflow run. It can return a run based solely on a JDBC version match, even if that run doesn't contain the expected correlation_id. This occurs both during polling when multiple new runs are present, and during the final check if a single version-matched run's creation time is close to dispatch. This can lead to monitoring an incorrect or older workflow, resulting in misleading status reports.
Reviewed by Cursor Bugbot for commit d092c0e. Configure here.
| python3 .github/scripts/mirror_tdvt.py \ | ||
| --event-type jdbc-snapshot \ | ||
| --version "${{ needs.nightly.outputs.jdbc_version }}" \ | ||
| --correlation-id "${{ github.repository }}#${{ github.run_id }}-${{ github.run_attempt }}" |
There was a problem hiding this comment.
TDVT job blocks workflow
Medium Severity
The new tdvt jobs are labeled non-blocking in comments and the PR calls for continue-on-error, but neither job nor the mirror step sets it. When mirror_tdvt.py exits non-zero (dispatch failure, poll timeout, or TDVT not success), the whole Nightly or Release workflow is marked failed even though publish already succeeded.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit d092c0e. Configure here.






Tableau users install the latest ClickHouse JDBC driver manually, so a snapshot or release regression reaches them with no connector release in between. After a publish, fire a
repository_dispatchtoClickHouse/connectorsso its Tableau TDVT suite runs against the new driver. Tracking: CON-264.nightly.yml: dispatchevent_type=jdbc-snapshot; version derived from the pom<revision>property (env.CHC_VERSIONis commented out).release.yml: dispatchevent_type=jdbc-releasewith the releaseversioninput.continue-on-errorso a dispatch failure never fails the publish, and requiresecrets.CONNECTORS_DISPATCH_TOKEN(Contents: read/write on connectors only).